วิธีสำรองข้อมูล S3 ด้วย AWS Backup

วิธีสำรองข้อมูล S3 ด้วย AWS Backup

ในบทความนี้จะมาแนะนำการสำรองข้อมูล Amazon S3 ด้วย AWS Backup โดยบทความนี้ถูกแปลมาจากบทความภาษาญี่ปุ่น

บทความนี้แปลมาจากบทความที่เป็นภาษาญี่ปุ่นที่ชื่อว่า AWS BackupでS3のバックアップを取る方法とそのメリット โดยเจ้าของบทความนี้คือ คุณ 嶋村星哉

ทำไมถึงจำเป็นต้องใช้ AWS Backup แม้ว่า S3 จะมีฟีเจอร์ versioning

สำหรับการสำรองข้อมูล S3 หลายคนอาจสงสัยว่ามันต่างจากฟีเจอร์ versioning อย่างไร เหตุผลที่ควรใช้ AWS Backup มีอยู่สองประการ

1. เมื่อ bucket ถูกลบไปทั้งหมด

เมื่อใช้ AWS Backup คุณสามารถกู้คืน bucket ได้แม้ในกรณีที่ bucket ถูกลบไปทั้งหมด

2. เมื่อคุณต้องการย้อนกลับไปยังจุดเวลาใดจุดเวลาหนึ่ง

ฟีเจอร์ versioning ของ S3 ช่วยให้สามารถย้อนกลับ object ไปยังจุดเวลาใดจุดเวลาหนึ่งได้ แต่ไม่สามารถย้อนกลับ bucket ทั้งหมดไปยังจุดเวลาเดิมได้ อย่างไรก็ตาม การใช้ AWS Backup จะช่วยให้คุณสามารถย้อนกลับ bucket ไปยังจุดเวลาใดจุดเวลาหนึ่งได้

ข้อกำหนดเบื้องต้น

  1. Bucket ที่เตรียมไว้สำหรับครั้งนี้
    เตรียมภาพจำนวน 4 ภาพ อัปโหลดไว้ที่ "aws-backup-blog-test" และทำการเปิด ฟีเจอร์ versioning ด้วย
    วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-1
  2. เปิดใช้งาน S3 ใน AWS Backup
    โปรดตรวจสอบว่าใน "AWS Backup" ภายใต้ "Settings" และ "Service opt-in" ตัวเลือก "S3 - new" ถูกตั้งค่าเป็น【Enabled】หรือไม่ หากตั้งค่าเป็น【Disabled】 ให้เปิดใช้งานโดยเลือก "Configure resources"
    วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-2

ลองทำ

※ หากใครเกิด error เกี่ยวกับ Role ให้ทำการเพิ่ม Policy:
AWSBackupServiceRolePolicyForS3Backup และ AWSBackupServiceRolePolicyForS3Restore ให้กับ Role: AWSBackupDefaultServiceRole

1. การสร้าง Backup Vault

Backup Vault คือคอนเทนเนอร์สำหรับการจัดเก็บและจัดระเบียบข้อมูลสำรอง สามารถสร้างได้โดยไปที่ "Vaults" ใน AWS Backup แล้วเลือก "Create backup Vault"
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-3
ตั้งชื่อ Backup Vault และเลือกคีย์การเข้ารหัส (AWS KMS) สำหรับการเข้ารหัสข้อมูลสำรอง โดยเลือก (default) aws/backup คีย์การเข้ารหัสนี้จะใช้สำหรับการเข้ารหัสข้อมูลสำรอง
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-4

2. สร้าง Backup plans

วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-5
ขั้นแรกคือการตั้งค่า Start option

ในครั้งนี้ เราจะลองตั้งค่าโดยไม่ใช้เทมเพลต ชื่อ Backup plan ตั้งเป็น "AwsBackupBlogPlan"
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-6
ชื่อกฎการสำรองข้อมูลตั้งเป็น "AwsBackupBlogRule"
เลือก Backup Vault ที่สร้างไว้ก่อนหน้านี้คือ "AwsBackupBlogVault"
ความถี่ในการสำรองข้อมูลเลือกเป็น "Hourly" (จะอธิบายตัวเลือกอื่น ๆ ด้านล่าง)
ระยะเวลาในการเก็บรักษาข้อมูลตั้งไว้ที่ "1 Day"
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-7
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-8
เมื่อกรอกข้อมูลข้างต้นเสร็จเรียบร้อยแล้ว ให้คลิก "Create Plan" เพื่อดำเนินการสร้าง

ทำการกำหนดทรัพยากร โดยตั้งชื่อ "Resource assignment name" เป็น "AwsBackupBlogResources" สำหรับ IAM Role เลือกใช้ Default role
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-9
เลือกทรัพยากรที่ต้องการสำรองข้อมูลก็คือ S3 bucket "aws-backup-blog-test"
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-10
เมื่อกรอกข้อมูลเสร็จเรียบร้อยแล้ว ให้คลิก "Assign Resources"

เมื่อเวลาผ่านไป ข้อมูลสำรองจะถูกสร้างขึ้นใน Backup Vault ที่เราได้สร้างไว้
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-11

ลองลบส่วนหนึ่งออกแล้วลองกู้คืนดู

ลองลบรูปภาพ test02.jpg
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-12
เรามาลองกู้คืนจากข้อมูลสำรองล่าสุดกัน

จาก Backup Vault ให้เลือก "AwsBackupBlogVault" แล้วไปที่ "Recovery points" เพื่อเลือกจุดที่คุณต้องการกู้คืน
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-13
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-14
สำหรับการตั้งค่า จะใช้ค่าเริ่มต้นทั้งหมด
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-15

ผลลัพธ์

ไฟล์ภาพ test02.jpg สามารถกู้คืนกลับมาได้

สำหรับภาพที่ถูกลบไป ตัวมาร์กเกอร์การลบไม่ได้หายไป แต่เวอร์ชันที่ถูกกู้คืนกลับมาจะถูกจัดการเวอร์ชันไว้
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-16

ลองลบ bucket ทั้งหมดแล้วกู้คืนดู

ลองลบ bucket ที่เราสร้างไว้ จากนั้นทำการกู้คืนด้วยวิธีเดียวกัน

ผลลัพธ์

bucket ถูกกู้คืนมาอีกครั้ง และเนื้อหาภายในก็ได้รับการกู้คืนอย่างสมบูรณ์

วิธีการกำหนดความถี่ในการสำรองข้อมูล

ความถี่ในการสำรองข้อมูลมีตัวเลือกดังนี้: "Hourly", "Every 12 hours", "Daily", "Weekly", "Monthly", และ "Custom cron expression"
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-17
ในกรณีที่เลือก【Weekly】 คุณสามารถระบุได้ว่าจะให้ทำการสำรองข้อมูลในวันไหนของสัปดาห์
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-18
ในกรณีที่เลือก【Monthly】 คุณสามารถระบุได้ว่าจะให้ทำการสำรองข้อมูลในวันที่เท่าไหร่ หรือเป็นวันใดของสัปดาห์ในลำดับที่เท่าไหร่ครับ เช่น วันที่ 15 ของเดือน หรือวันจันทร์ที่สองของเดือน เป็นต้น
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-19
วิธีสำรองข้อมูล S3 ด้วย AWS Backup_20241008-20
สำหรับ【Custom cron expression】 เนื่องจากการอธิบายอาจยาวมาก ขอแนะนำให้ดูที่เอกสารทางการของ AWS
การใช้ cron expression ช่วยให้คุณสามารถตั้งเวลาสำรองข้อมูลได้อย่างละเอียดมากขึ้น เช่น ทุก 15 นาที เป็นต้น

สุดท้ายนี้

ไม่ว่าจะลบ bucket หรือ object ไปทั้งหมด ก็สามารถกู้คืนได้ ดังนั้นผมคิดว่านี่เป็นฟีเจอร์ที่ควรเปิดใช้งานไว้ตลอดเวลา

บทความต้นฉบับ

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.